<h1 id="bzip2">bzip2</h1>
<p>将文件压缩成bz2格式</p>
<h2 id="补充说明">补充说明</h2>
<p><strong>bzip2命令</strong> 用于创建和管理（包括解压缩）“.bz2”格式的压缩包。我们遇见Linux压缩打包方法有很多种，以下讲解了Linux压缩打包方法中的Linux bzip2命令的多种范例供大家查看，相信大家看完后会有很多收获。</p>
<h3 id="语法">语法</h3>
<pre><code class="language-bash">bzip2(选项)(参数)</code></pre>
<h3 id="选项">选项</h3>
<pre><code class="language-bash">-c或——stdout：将压缩与解压缩的结果送到标准输出；
-d或——decompress：执行解压缩；
-f或-force：bzip2在压缩或解压缩时，若输出文件与现有文件同名，预设不会覆盖现有文件。若要覆盖。请使用此参数；
-h或——help：在线帮助；
-k或——keep：bzip2在压缩或解压缩后，会删除原始文件。若要保留原始文件，请使用此参数；
-s或——small：降低程序执行时内存的使用量；
-t或——test：测试.bz2压缩文件的完整性；
-v或——verbose：压缩或解压缩文件时，显示详细的信息；
-z或——compress：强制执行压缩；
-V或——version：显示版本信息；
--repetitive-best：若文件中有重复出现的资料时，可利用此参数提高压缩效果；
--repetitive-fast：若文件中有重复出现的资料时，可利用此参数加快执行效果。</code></pre>
<h3 id="参数">参数</h3>
<p>文件：指定要压缩的文件。</p>
<h3 id="实例">实例</h3>
<p><strong>压缩指定文件filename:</strong></p>
<pre><code class="language-bash">bzip2 filename
或
bzip2 -z filename</code></pre>
<p>这里，压缩的时候不会输出，会将原来的文件filename给删除，替换成filename.bz2.如果以前有filename.bz2则不会替换并提示错误（如果想要替换则指定-f选项，例如<code>bzip2 -f filename</code>；如果filename是目录则也提醒错误不做任何操作；如果filename已经是压过的了有bz2后缀就提醒一下，不再压缩，没有bz2后缀会再次压缩。</p>
<p><strong>解压指定的文件filename.bz2:</strong></p>
<pre><code class="language-bash">bzip2 -d filename.bz2
或
bunzip2 filename.bz2</code></pre>
<p>这里，解压的时候没标准输出，会将原来的文件filename.bz2给替换成filename。如果以前有filename则不会替换并提示错误（如果想要替换则指定<code>-f</code>选项，例如<code>bzip2 -df filename.bz2</code>。</p>
<p><strong>压缩解压的时候将结果也输出：</strong></p>
<pre><code class="language-bash">$bzip2 -v filename</code></pre>
<p>输入之后，输出如下：</p>
<pre><code class="language-bash">filename:  0.119:1, 67.200 bits/byte, -740.00% saved, 5 in, 42 out.</code></pre>
<p>这里，加上<code>-v</code>选项就会输出了,只用压缩举例了，解压的时候同理<code>bzip2 -dv filename.bz2</code>不再举例了。</p>
<p><strong>模拟解压实际并不解压：</strong></p>
<pre><code class="language-bash">bzip2 -tv filename.bz2</code></pre>
<p>输入之后，输出如下：</p>
<pre><code class="language-bash">filename.bz2: ok</code></pre>
<p>这里，<code>-t</code>指定要进行模拟解压，不实际生成结果，也就是说类似检查文件,当然就算目录下面有filename也不会有什么错误输出了，因为它根本不会真的解压文件。为了在屏幕上输出，这里加上<code>-v</code>选项了,如果是真的解压<code>bzip2 -dv filename.bz2</code>则输出的是把“ok”替换成了“done”。</p>
<p><strong>压缩解压的时候，除了生成结果文件，将原来的文件也保存:</strong></p>
<pre><code class="language-bash">bzip2 -k filename</code></pre>
<p>这里，加上<code>-k</code>就保存原始的文件了，否则原始文件会被结果文件替代。只用压缩举例了，解压的时候同理<code>$bzip2 -dk filename.bz2</code>不再举例了。</p>
<p><strong>解压到标准输出：</strong></p>
<pre><code class="language-bash">bzip2 -dc filename.bz2</code></pre>
<p>输入之后，输出如下：</p>
<pre><code class="language-bash">hahahhaahahha</code></pre>
<p>这里，使用<code>-c</code>指定到标准输出，输出的是文件filename的内容，不会将filename.bz2删除。</p>
<p><strong>压缩到标准输出：</strong></p>
<pre><code class="language-bash">bzip2 -c filename
bzip2: I won&#39;t write compressed data to a terminal.
bzip2: For help, type: `bzip2 --help&#39;.</code></pre>
<p>这里，使用<code>-c</code>指定压缩到标准输出不删除原有文件，不同的是，压缩后的文件无法输出到标准输出。</p>
<p><strong>使用bzip2的时候将所有后面的看作文件(即使文件名以’-’开头)：</strong></p>
<pre><code class="language-bash">bzip2 -- -myfilename</code></pre>
<p>这里主要是为了防止文件名中<code>-</code>产生以为是选项的歧义。</p>
<!-- Linux命令行搜索引擎：https://jaywcjlove.github.io/linux-command/ -->
